K-Means 聚类是统计机器学习中最经典的聚类算法之一,本节将向大家介绍在 Python 中使用 Scikit-Learn 相关工具对数据样本进行 K-Means 聚类的方法与技巧。 首先,导入相关的数据运算及可视化工具库:


In [2]:
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()  # 设置一个美观的图表样式
import numpy as np

In [3]:
from sklearn.datasets.samples_generator import make_blobs
X, y_true = make_blobs(n_samples=300, centers=4,
                       cluster_std=0.60, random_state=0)
plt.scatter(X[:, 0], X[:, 1], s=50);


可以看到,我们的示例数据集由300个聚类关系相对明显的二维数据样本构成。接下来,我们导入相关的模块,利用 Scikit-Learn 中的 KMeans 工具构建模型对象并进行 K-Means 聚类:


In [4]:
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)

In [6]:
x = np.array([[0], [1], [2]])
x.shape


Out[6]:
(3L, 1L)

In [7]:
y = np.squeeze(x)
y


Out[7]:
array([0, 1, 2])